//
//  XLUserAccountTools.swift
//  XLVeibo
//
//  Created by macbook on 16/6/26.
//  Copyright © 2016年 buWangChuXing. All rights reserved.
//

import UIKit

class XLUserAccountTools: NSObject {

    let path = (NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")
    
    //保存用户信息数据对象
    var userAccount:XLUserAccount?
    
    
    //判断用户是否登陆
    var isLogin:Bool{
    
        //如果token为空，代表没有登录
        return accessToken != nil
    }
    
    //访问令牌（只读）
    var accessToken:String?{
    
        //代表没有登录
        if userAccount?.access_token == nil {
            
            return nil
        }else {
        
            //如果expires_Date 和当前时间比较是降序 代表没有过时
            if userAccount?.expires_Date?.compare(NSDate()) == NSComparisonResult.OrderedDescending {
                
                return userAccount?.access_token
            }else{
            
                return nil
            }
        }
    }
    
    
    
    
    
    //全局访问点
    static let sharedTools:XLUserAccountTools = XLUserAccountTools()
    
 
    override init() {
        super.init()
      userAccount = getUserAccount()
    }
    
    
    
    
    //保存对象
    func saveUserAccount(userAccount:XLUserAccount){
    
       //如果第一次调用我们的单例 userAccount 是 nil 
    //然后马上给他赋值
        self.userAccount = userAccount
        //路径
        
        
        NSKeyedArchiver.archiveRootObject(userAccount, toFile: path)
    
    }

    //获取对象
    func getUserAccount() ->XLUserAccount? {
    
        //由于第一次获取对象时，我们根本没有保存，所以系统返给我nil
        
        let result = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as? XLUserAccount
        
    
        return result
    }
    
    
    
    
}


